// DataLibrary InterfacePlugin - Help

// 識別子：DL_HLP
// 内容  ：ヘルプ。

//----------------------------------------------------------------------------//
// Plugin
//----------------------------------------------------------------------------//

//-- プラグインの読み込み処理 --//
DL_LoadInterface_Help:
	// 共有サブルーチンを読み込む
	Call DL_LoadInterface "Common"
	
	// サブインターフェースを読み込む
	Call DL_LoadInterface "Config"
	Call DL_LoadInterface "Help"
	
	// スキンを読み込む
	Call DL_LoadSkin "Help"
Return


//-- プラグインの終了処理 --//
//DL_UnLoadInterface_Help:
//Return


//----------------------------------------------------------------------------//
// Interface-Help
//----------------------------------------------------------------------------//

//-- GUI_Help : インターフェースを開始する --//
DL_GUI_Help:
	// ヘルプデータを読み込む
	Local temp = Eval("DL_HLP_LoadHelpText_" & DL_ShowGUI & "()")
	
	// ヘルプデータのキー名称の最大幅を取得する
	Call DL_HLP_SetKeyNameWidth
	
	// インターフェースを表示する
	Call DL_HLP_SkinAction "StartInterface"
	Show
	Do
		Call DL_CMN_WaitAction
	Loop While DL_HLP_InterfaceAction(DL_CMN_ActionID)
	
	// インターフェースを終了する
	Call DL_HLP_SkinAction "EndInterface"
	
	// ヘルプデータを削除する
	UnSet DL_HLP_KeyHelp
	UnSet DL_HLP_KeyNameWidth
Return


//-- InterfaceAction action_id : 動作を実行する。ループ続行なら1を返す --//
DL_HLP_InterfaceAction:
	Local action_id = Args(1)
	Switch LIndex(action_id, 1)
	Case "Scroll"
		// スクロール用の汎用処理を呼び出す
		Return DL_CMN_ScrollAction(action_id, "HLP")
	Case "Return" "Cancel"
		// 戻る用の汎用処理を呼び出す
		Return DL_CMN_ReturnAction(action_id, "HLP", "Index")
	Case "Index"
		// 戻る用の汎用処理を呼び出す(インデックス直帰)
		Return DL_CMN_IndexAction(action_id, "HLP")
	Case "Quit"
		// 終了用の汎用処理呼び出す 
		Return DL_CMN_QuitAction(action_id, "HLP")
	Case Else
		// 未設定動作用の汎用処理を呼び出す
		Return DL_CMN_NotDefinedAction(action_id, "HLP")
	EndSw
Return 1


//----------------------------------------------------------------------------//
// Subroutine
//----------------------------------------------------------------------------//

//-- DL_HLP_SetKeyHelp key_name text : ショートカットキーヘルプを設定する --//
DL_HLP_SetKeyHelp:
	Set DL_HLP_KeyHelp[Count(DL_HLP_KeyHelp) + 1] ("(" & Args(1) & ") (" & Args(2) & ")")
Return


//-- SetKeyNameWidth : ヘルプデータのキー名称の最大幅を取得する --//
DL_HLP_SetKeyNameWidth:
	Set DL_HLP_KeyNameWidth 0
	
	Font 9pt DL_FontFace["Text"] Regular
	Local width i
	For i = 1 To Count(DL_HLP_KeyHelp)
		width = TextWidth(LIndex(DL_HLP_KeyHelp[i], 1))
		Set DL_HLP_KeyNameWidth Max(DL_HLP_KeyNameWidth, width)
	Next
Return


